Printers generally include a print controller that receives print data (e.g., Page Description Language (PDL) data), and a print engine. The print controller rasterizes the logical pages of the print job into bitmap images. In n-up printing, multiple logical pages reside on a printed page, or sheet side. The print controller assembles the bitmap images for the logical pages into a sheet side image. The sheet side image is then sent to the print engine for imprinting to a media, such as paper.
When storing the rasterized logical pages of the print job, it is generally much faster to store the rasterized pages in a solid state memory, such as a Random Access Memory (RAM). However, solid state memory is a finite resource and eventually the memory will become full. In addition, multiple processes executing on the print controller may be sharing data stored in the solid state memory. For example, a page rasterizer may store bitmap images of the logical pages to the solid state memory. A sheet side assembler may then read the bitmap images out of the solid state memory in order to build sheet side images for printing. After assembling a sheet side image, the portions of the solid state memory that store the bitmap images are freed for other uses, such as storing newly rasterized logical pages.
To handle out of memory conditions for the solid state memory, modern printers often include a mechanical hard disk drive for storing the rasterized pages as a fall-back. When the solid state memory is full, the rasterizer may automatically begin writing rasterized pages to the hard disk. However, writing data to the hard disk is slower than writing the data to the solid state memory. Thus, the rasterization process slows down when the hard disk is used to store raster data.
It thus remains a problem to efficiently respond to how a rasterizer handles out of memory conditions for solid state memory to improve the throughput of the rasterization process.